.TH std::ispunct(std::locale) 3 "2024.06.10" "http://cppreference.com" "C++ Standard Libary"
.SH NAME
std::ispunct(std::locale) \- std::ispunct(std::locale)

.SH Synopsis
   Defined in header <locale>
   template< class CharT >
   bool ispunct( CharT ch, const locale& loc );

   Checks if the given character is classified as a punctuation character by the given
   locale's std::ctype facet.

.SH Parameters

   ch  - character
   loc - locale

.SH Return value

   Returns true if the character is classified as punctuation, false otherwise.

.SH Possible implementation

   template<class CharT>
   bool ispunct(CharT ch, const std::locale& loc)
   {
       return std::use_facet<std::ctype<CharT>>(loc).is(std::ctype_base::punct, ch);
   }

.SH Example

   Demonstrates the use of std::ispunct() with different locales (OS-specific).


// Run this code

 #include <iostream>
 #include <locale>

 int main()
 {
     const wchar_t c = L'\\u214b'; // upside-down ampersand

     std::locale loc1("C");
     std::cout << "ispunct('⅋', C locale) returned "
               << std::boolalpha << std::ispunct(c, loc1) << '\\n';

     std::locale loc2("en_US.UTF-8");
     std::cout << "ispunct('⅋', Unicode locale) returned "
               << std::boolalpha << std::ispunct(c, loc2) << '\\n';
 }

.SH Possible output:

 isalpha('⅋', C locale) returned false
 isalpha('⅋', Unicode locale) returned true

.SH See also

   ispunct  checks if a character is a punctuation character
            \fI(function)\fP
   iswpunct checks if a wide character is a punctuation character
            \fI(function)\fP
